// 自定义 SearchDelegate
import 'package:flutter/material.dart';
import 'package:eshi/app/shi/data/SearchResult.dart';

class CustomSearchDelegate extends SearchDelegate<String> {
  String? searchKey;
  CustomSearchDelegate(this.searchKey);
 // 1. 搜索框提示文字（默认值）
  @override
  String get searchFieldLabel {
    return searchKey==null ? "请输入搜索内容...":searchKey!;
  }

  //  @override
  // ThemeData appBarTheme(BuildContext context) {
  //   final ThemeData theme = Theme.of(context);
  //   return theme.copyWith(
  //     appBarTheme: theme.appBarTheme.copyWith(
  //       backgroundColor: Colors.white.withOpacity(0.85), // 半透明黑色背景
  //       elevation: 0, // 去除阴影
  //     )
  //   );
  // }

  @override
  List<Widget>? buildActions(BuildContext context) {
    // 搜索框右侧的操作按钮，这里是清除按钮
    return [
      IconButton(
        icon: Icon(Icons.clear),
        onPressed: () {
          query = ""; // 点击清除按钮，清空搜索框内容
        },
      ),
    ];
  }

  @override
  Widget? buildLeading(BuildContext context) {
    // 搜索框左侧的按钮，这里是返回按钮
    return IconButton(
      icon: AnimatedIcon(
        icon: AnimatedIcons.menu_arrow,
        progress: transitionAnimation,
      ),
      onPressed: () {
        close(context,""); // 点击返回按钮，关闭搜索框
      },
    );
  }

  @override
  Widget buildResults(BuildContext context) {
    close(context,query); 
    SearchResultHistory.add(query);
    // 搜索结果页面，这里简单显示搜索到的内容
    return Center(
      // child: Container(
      //   width: 100,
      //   height: 100,
      //   child: Card(
      //     color: Colors.redAccent,
      //     child: Text(query),
      //   ),
      // ),
    );
  }

  @override
  Widget buildSuggestions(BuildContext context) {
    // 搜索建议内容，这里可以根据query生成相关建议，暂时简单返回空列表
    var all = SearchResultHistory.getData();
    List<Widget> childs = all.map((v){ return TextButton(
      onPressed: (){
        close(context,v); 
      },
      style: TextButton.styleFrom(
                // 关键：自定义内边距（左右边距设为8，上下设为4）
                padding: const EdgeInsets.symmetric(
                  horizontal: 4.0, // 左右边距
                  vertical: 4.0,   // 上下边距
                ),
                // 可选：进一步调整最小尺寸（移除额外空白）
                minimumSize: const Size(0, 0), // 最小尺寸设为0，避免默认最小宽度
              ),
      child:  Text(v));
    }).toList();
    return Center(
        child: Wrap(
          spacing: 2, //主轴上子控件的间距
          runSpacing: 5, //交叉轴上子控件之间的间距
          children: childs
        )
    );
  }
}